package com.xbongbong.paas.toolbox.wrap;

import com.xbongbong.pro.enums.ApiCallBackEnum;
import com.xbongbong.pro.enums.SaasMarkEnum;
import com.xbongbong.saas.enums.OperateTypeEnum;
import com.xbongbong.saas.enums.XbbRefTypeEnum;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * API-webHook 注解
 * 使用切面处理webHook回调
 * @author 李少杰
 * @version v1.0.0
 * @date 2021/8/27 09:38
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface EnableApiCallBack {

    /**
     * 业务类型
     * @return 业务类型枚举
     */
    ApiCallBackEnum callBackBusiness();

    /**
     * SaaS标记
     * @return SaaS标记
     */
    SaasMarkEnum saasMark() default SaasMarkEnum.SAAS;

    /**
     * 操作类型
     * @return 操作类型枚举
     */
    OperateTypeEnum operateTypeEnum();

    /**
     * 是否批量
     * @return true：是批量处理业务
     *         false：非批量处理业务
     */
    boolean isBatch() default false;
}
